WebGLã¯ã©ã¹ã¿ãŒåããã¡ãŒãã¬ã³ããªã³ã°ã®è€éããæ¢æ±ãããã®ã©ã€ã管çã¢ãŒããã¯ãã£ãšããã©ãŒãã³ã¹ããã³ããžã¥ã¢ã«å質ãžã®åœ±é¿ã«çŠç¹ãåœãŠãŸãã
WebGL ã¯ã©ã¹ã¿ãŒåããã¡ãŒãã¬ã³ããªã³ã°ïŒã©ã€ã管çã¢ãŒããã¯ãã£ã®åŸ¹åºè§£èª¬
ã¯ã©ã¹ã¿ãŒåããã¡ãŒãã¬ã³ããªã³ã°ïŒCDRïŒã¯ããªã¢ã«ã¿ã€ã 3Dã°ã©ãã£ãã¯ã¹ã«ãããŠå€æ°ã®å æºã®æ±ããå€§å¹ ã«æ¹åããé«åºŠãªã¬ã³ããªã³ã°æè¡ã§ããããã©ãŒãã³ã¹ãæéèŠèŠãããWebGLç°å¢ã§ã¯ç¹ã«å¹æçã§ããæ¬çš¿ã§ã¯ãCDRã®è€éããç¹ã«ãã®ã©ã€ã管çã¢ãŒããã¯ãã£ããã®å©ç¹ããããŠåŸæ¥ã®ããã¡ãŒãã¬ã³ããªã³ã°ãšã®æ¯èŒã«ã€ããŠæ¢æ±ããŸãããŸããå ç¢ãªããã©ãŒãã³ã¹ãšã¹ã±ãŒã©ããªãã£ã確ä¿ããããã«ãWebGLã§CDRãå®è£ ããéã®å®è·µçãªèæ ®äºé ãæ€èšŒããŸãã
ããã¡ãŒãã¬ã³ããªã³ã°ã®çè§£
ã¯ã©ã¹ã¿ãŒåããã¡ãŒãã¬ã³ããªã³ã°ã«é£ã³èŸŒãåã«ããã®å身ã§ããããã¡ãŒãã¬ã³ããªã³ã°ïŒããã¡ãŒãã·ã§ãŒãã£ã³ã°ãšãåŒã°ããŸãïŒãçè§£ããããšãäžå¯æ¬ ã§ããåŸæ¥ã®ãã©ã¯ãŒãã¬ã³ããªã³ã°ã§ã¯ãã·ãŒã³å ã®ãã¹ãŠã®ãªããžã§ã¯ãã«å¯ŸããŠããã©ã°ã¡ã³ãïŒãã¯ã»ã«ïŒããšã«ã©ã€ãã£ã³ã°ãèšç®ããŸããããã¯ç¹ã«è€æ°ã®ã©ã€ããããå Žåã«éåžžã«é«ã³ã¹ãã«ãªããä»ã®ãªããžã§ã¯ãã«ãªã¯ã«ãŒãžã§ã³ãããïŒé ãããïŒå¯èœæ§ã®ãããã¯ã»ã«ã«å¯ŸããŠãåãã©ã€ãã£ã³ã°èšç®ãç¹°ãè¿ãããããã§ãã
ããã¡ãŒãã¬ã³ããªã³ã°ã¯ããžãªã¡ããªåŠçãšã©ã€ãã£ã³ã°èšç®ãåé¢ããããšã§ãã®åé¡ã«å¯ŸåŠããŸããäž»ã«2ã€ã®ãã¹ã§åäœããŸãïŒ
- ãžãªã¡ããªãã¹ïŒG-Bufferãã£ã«ïŒïŒ ã·ãŒã³ãã¬ã³ããªã³ã°ããŠG-BufferïŒãžãªã¡ããªãããã¡ïŒãäœæããŸããããã¯ä»¥äžã®ãããªæ å ±ãå«ããã¯ã¹ãã£ã®ã»ããã§ãïŒ
- 深床
- æ³ç·
- ã¢ã«ããïŒã«ã©ãŒïŒ
- ã¹ããã¥ã©
- ãã®ä»ã®ãããªã¢ã«ããããã£
ããã¡ãŒãã¬ã³ããªã³ã°ã¯è€æ°ã®ã©ã€ããããã·ãŒã³ã§å€§å¹ ãªããã©ãŒãã³ã¹åäžããããããŸãããéåžžã«å€æ°ã®å æºãããå Žåã«ã¯äŸç¶ãšããŠèª²é¡ã«çŽé¢ããŸãããã¹ãŠã®ãã¯ã»ã«ã«å¯ŸããŠãã¹ãŠã®ã©ã€ããå埩åŠçããããšã¯ãç¹ã«å€ãã®ã©ã€ããéå®çãªç¯å²ããæãããç»é¢ã®ããäžéšã«ãã圱é¿ãäžããªãå Žåã«é«ã³ã¹ãã«ãªããŸãã
ã¯ã©ã¹ã¿ãŒåããã¡ãŒãã¬ã³ããªã³ã°ã®å¿ èŠæ§
åŸæ¥ã®ããã¡ãŒãã¬ã³ããªã³ã°ã®äž»ãªããã«ããã¯ã¯ãã©ã€ãã®å埩åŠçã³ã¹ãã§ããåãã¯ã»ã«ã«å¯ŸããŠãã©ã€ãã£ã³ã°ãã¹ã¯ã·ãŒã³å ã®ãã¹ãŠã®ã©ã€ããå埩åŠçããå¿ èŠããããŸãããããšããã®ã©ã€ãã®åœ±é¿ãæå°éãŸãã¯çç¡ã§ãã£ãŠãåæ§ã§ããããã§ã¯ã©ã¹ã¿ãŒåããã¡ãŒãã¬ã³ããªã³ã°ãç»å ŽããŸãã
CDRã¯ãã©ã€ãã£ã³ã°ãã¹ãæé©åããããšãç®çãšããŠããŸãïŒ
- 空éç现ååïŒ ãã¥ãŒãã©ã¹ã¿ã ãã¯ã©ã¹ã¿ãŒã®3Dã°ãªããã«åå²ããŸãã
- ã©ã€ãã®å²ãåœãŠïŒ åã©ã€ãããããã亀差ããã¯ã©ã¹ã¿ãŒã«å²ãåœãŠãŸãã
- æé©åãããã©ã€ãååŸ©ïŒ ã©ã€ãã£ã³ã°ãã¹äžãçŸåšã®ãã¯ã»ã«ãå«ãŸããç¹å®ã®ã¯ã©ã¹ã¿ãŒã«é¢é£ä»ããããã©ã€ãã®ã¿ãèæ ®ãããŸãã
ããã«ãããåãã¯ã»ã«ã§å埩åŠçãããã©ã€ãã®æ°ãå€§å¹ ã«åæžãããç¹ã«ç©ºéçã«å±åšåãããã©ã€ããé«å¯åºŠã«ååšããã·ãŒã³ã§å¹æçã§ããæœåšçã«æ°çŸãŸãã¯æ°åã®ã©ã€ããå埩åŠçãã代ããã«ãã©ã€ãã£ã³ã°ãã¹ã¯æ¯èŒçå°ããªãµãã»ããã®ã¿ãèæ ®ããŸãã
ã¯ã©ã¹ã¿ãŒåããã¡ãŒãã¬ã³ããªã³ã°ã®ã¢ãŒããã¯ãã£
CDRã®äžæ žã¯ãã©ã€ããšã¯ã©ã¹ã¿ãŒã管çããããã®ããŒã¿æ§é ãšã¢ã«ãŽãªãºã ã«ãããŸãã以äžã«äž»èŠãªã³ã³ããŒãã³ãã®å èš³ã瀺ããŸãïŒ
1. ã¯ã©ã¹ã¿ãŒã°ãªããã®çæ
æåã®ã¹ãããã¯ããã¥ãŒãã©ã¹ã¿ã ãã¯ã©ã¹ã¿ãŒã®3Dã°ãªããã«åå²ããããšã§ãããã®ã°ãªããã¯éåžžãã«ã¡ã©ã®ãã¥ãŒã«æŽåããã衚瀺å¯èœãªã·ãŒã³å šäœã«åã³ãŸããã°ãªããã®æ¬¡å ïŒäŸïŒ16x9x8ïŒã¯ã¯ã©ã¹ã¿ãªã³ã°ã®ç²åºŠã決å®ããŸããé©åãªæ¬¡å ãéžæããããšã¯ããã©ãŒãã³ã¹ã«ãšã£ãŠéåžžã«éèŠã§ãïŒ
- ã¯ã©ã¹ã¿ãŒãå°ãªãããå ŽåïŒ åã¯ã©ã¹ã¿ãŒã«å€ãã®ã©ã€ããå²ãåœãŠãããã¯ã©ã¹ã¿ãªã³ã°ã®å©ç¹ãæãªãããŸãã
- ã¯ã©ã¹ã¿ãŒãå€ãããå ŽåïŒ ã¯ã©ã¹ã¿ãŒã°ãªãããšã©ã€ãå²ãåœãŠã®ç®¡çãªãŒããŒããããå¢å ããŸãã
æé©ãªã°ãªããæ¬¡å ã¯ãã©ã€ãã®å¯åºŠããªããžã§ã¯ãã®ç©ºéçååžãªã©ãã·ãŒã³ã®ç¹æ§ã«äŸåããŸããæé©ãªæ§æãèŠã€ããããã«ã¯ããã°ãã°çµéšçãªãã¹ããå¿ èŠã§ããã¢ããã³ã®ãã©ã±ã·ã¥ã®åžå Žã®ãããªãæ°çŸã®ã©ã³ã¿ã³ãããã·ãŒã³ãèããŠã¿ãŠãã ãããåã©ã³ã¿ã³ã®å ã®åœ±é¿ãããæ£ç¢ºã«åé¢ããããã«ãããå¯ãªã¯ã©ã¹ã¿ãŒã°ãªãããæçãããããŸãããéã«ããããã¢ã®åºå€§ãªç æŒ ã®ã·ãŒã³ã§ãé ãã«ããã€ãã®ãã£ã³ããã¡ã€ã€ãŒãããå Žåã¯ãããç²ãã°ãªããã®æ¹ãè¯ããããããŸããã
2. ã©ã€ãã®å²ãåœãŠ
ã¯ã©ã¹ã¿ãŒã°ãªããã確ç«ããããšã次ã®ã¹ãããã¯åã©ã€ããããã亀差ããã¯ã©ã¹ã¿ãŒã«å²ãåœãŠãããšã§ããããã«ã¯ãã©ã®ã¯ã©ã¹ã¿ãŒãã©ã€ãã®åœ±é¿ç¯å²å ã«ãããã倿ããããšãå«ãŸããŸãããã®ããã»ã¹ã¯ã©ã€ãã®çš®é¡ã«ãã£ãŠç°ãªããŸãïŒ
- ãã€ã³ãã©ã€ãïŒ ãã€ã³ãã©ã€ãã®å Žåãã©ã€ãã®ååŸããã®åœ±é¿ç¯å²ãå®çŸ©ããŸããäžå¿ãã©ã€ãã®ååŸå ã«ããã¯ã©ã¹ã¿ãŒã¯ãã©ã€ããšäº€å·®ããŠãããšèŠãªãããŸãã
- ã¹ãããã©ã€ãïŒ ã¹ãããã©ã€ãã«ã¯ååŸãšæ¹åã®äž¡æ¹ããããŸãã亀差ãã¹ãã§ã¯ãã©ã€ãã®äœçœ®ãæ¹åãã³ãŒã³ã®è§åºŠã®äž¡æ¹ãèæ ®ããå¿ èŠããããŸãã
- ãã£ã¬ã¯ã·ã§ãã«ã©ã€ãïŒ ç¡éé ã«ãããã£ã¬ã¯ã·ã§ãã«ã©ã€ãã¯ãæè¡çã«ã¯ãã¹ãŠã®ã¯ã©ã¹ã¿ãŒã«åœ±é¿ãäžããŸããããããå®éã«ã¯ãã©ã€ãã£ã³ã°ãã¹ã§ã®ç¹æ®ãªã±ãŒã¹ãã³ããªã³ã°ãé¿ããããã«ãããããå¥ã ã«æ±ããããã¹ãŠã®ã¯ã©ã¹ã¿ãŒã«å²ãåœãŠãããšãã§ããŸãã
ã©ã€ãã®å²ãåœãŠããã»ã¹ã¯ãããŸããŸãªæè¡ã䜿çšããŠå®è£ ã§ããŸãïŒ
- CPUåŽã§ã®èšç®ïŒ CPUã§äº€å·®ãã¹ããå®è¡ãããã®çµæã®ã©ã€ãå²ãåœãŠãGPUã«ã¢ããããŒãããŸãããã®ã¢ãããŒãã¯å®è£ ãç°¡åã§ããã倿°ã®åçã©ã€ããããã·ãŒã³ã§ã¯ããã«ããã¯ã«ãªãå¯èœæ§ããããŸãã
- GPUåŽã§ã®èšç®ïŒ ã³ã³ãã¥ãŒãã·ã§ãŒããŒã掻çšããŠãGPUäžã§çŽæ¥äº€å·®ãã¹ããå®è¡ããŸããããã«ãããç¹ã«åçã©ã€ãã®å ŽåãCPUããèšç®ããªãããŒããããããããã©ãŒãã³ã¹ãå€§å¹ ã«åäžããŸãã
WebGLã§ã¯ãæé©ãªããã©ãŒãã³ã¹ãéæããããã«ãéåžžãã³ã³ãã¥ãŒãã·ã§ãŒããŒã䜿çšããGPUåŽã§ã®èšç®ã奜ãŸããŸãããã©ã€ãã€ã³ããã¯ã¹ãå¹ççã«æ ŒçŽããã«ã¯WebGL 2.0ãŸãã¯`EXT_color_buffer_float`æ¡åŒµæ©èœãå¿ èŠã§ããããšãã°ãããã€ã®ããŒãã£ã«ã·ã§ããã³ã°ã¢ãŒã«å ã§é«éã§ç§»åããåçãªå æºãæ³åããŠã¿ãŠãã ãããã¹ã ãŒãºãªãã¬ãŒã ã¬ãŒããç¶æããããã«ã¯ãGPUã§ã©ã€ãå²ãåœãŠãå®è¡ããããšãäžå¯æ¬ ã§ãã
3. ã©ã€ããªã¹ãã®ããŒã¿æ§é
ã©ã€ãå²ãåœãŠããã»ã¹ã®çµæã¯ãåã¯ã©ã¹ã¿ãŒã«é¢é£ä»ããããã©ã€ãã®ãªã¹ããæ ŒçŽããããŒã¿æ§é ã§ããããã€ãã®ããŒã¿æ§é ãªãã·ã§ã³ãååšããããããã«ãã¬ãŒããªãããããŸãïŒ
- ã©ã€ãã®é åïŒ åã¯ã©ã¹ã¿ãŒãã©ã€ãã€ã³ããã¯ã¹ã®é åãæ ŒçŽããåçŽãªã¢ãããŒããå®è£ ã¯ç°¡åã§ãããã¯ã©ã¹ã¿ãŒããšã«ã©ã€ãã®æ°ãå€§å¹ ã«ç°ãªãå Žåãéå¹çã«ãªãå¯èœæ§ããããŸãã
- ãªã³ã¯ãªã¹ãïŒ åã¯ã©ã¹ã¿ãŒã®ã©ã€ãã€ã³ããã¯ã¹ãæ ŒçŽããããã«ãªã³ã¯ãªã¹ãã䜿çšããŸããããã«ããåçãªãµã€ãºå€æŽãå¯èœã«ãªããŸãããé åããããã£ãã·ã¥ãã¬ã³ããªãŒã§ãªãå ŽåããããŸãã
- ãªãã»ããããŒã¹ã®ãªã¹ãïŒ ã°ããŒãã«ãªé åã«ãã¹ãŠã®ã©ã€ãã€ã³ããã¯ã¹ãæ ŒçŽããåã¯ã©ã¹ã¿ãŒããã®ã¯ã©ã¹ã¿ãŒã«é¢é£ããã€ã³ããã¯ã¹ã®ç¯å²ã瀺ããªãã»ãããšé·ããæ ŒçŽãããããå¹ççãªã¢ãããŒããããã¯æãäžè¬çã§ãéåžžãæãããã©ãŒãã³ã¹ã®é«ãã¢ãããŒãã§ãã
WebGLã§ã¯ããªãã»ããããŒã¹ã®ãªã¹ãã¯éåžžã以äžã䜿çšããŠå®è£ ãããŸãïŒ
- ã¢ãããã¯ã«ãŠã³ã¿ãŒïŒ åã¯ã©ã¹ã¿ãŒã®ã©ã€ããªã¹ãã®ããã«ã°ããŒãã«é åã«ã¹ããŒã¹ãå²ãåœãŠãããã«äœ¿çšãããŸãã
- ã·ã§ãŒããŒã¹ãã¬ãŒãžãããã¡ãªããžã§ã¯ãïŒSSBOïŒïŒ ã©ã€ãã€ã³ããã¯ã¹ã®ã°ããŒãã«é åãšåã¯ã©ã¹ã¿ãŒã®ãªãã»ãã/é·ãããŒã¿ãæ ŒçŽããããã«äœ¿çšãããŸãã
åãŠããããå æºãçºããæ°çŸã®ãŠããããæã€ãªã¢ã«ã¿ã€ã ã¹ãã©ããžãŒã²ãŒã ãèããŠã¿ãŠãã ãããSSBOãä»ããŠç®¡çããããªãã»ããããŒã¹ã®ãªã¹ãã¯ããããã®å€æ°ã®åçã©ã€ããå¹ççã«åŠçããããã«äžå¯æ¬ ã§ããããŒã¿æ§é ã®éžæã¯ãäºæ³ãããã·ãŒã³ã®è€éããšWebGLç°å¢ã®å¶éã«åºã¥ããŠæ éã«æ€èšããå¿ èŠããããŸãã
4. ã©ã€ãã£ã³ã°ãã¹
ã©ã€ãã£ã³ã°ãã¹ã¯ãå®éã®ã©ã€ãã£ã³ã°èšç®ãå®è¡ãããå Žæã§ããåãã¯ã»ã«ã«å¯ŸããŠãéåžžã以äžã®ã¹ããããå®è¡ãããŸãïŒ
- ã¯ã©ã¹ã¿ãŒã®æ±ºå®ïŒ çŸåšã®ãã¯ã»ã«ãå±ããã¯ã©ã¹ã¿ãŒã€ã³ããã¯ã¹ãããã®ç»é¢åº§æšãšæ·±åºŠã«åºã¥ããŠèšç®ããŸãã
- ã©ã€ããªã¹ããžã®ã¢ã¯ã»ã¹ïŒ ã¯ã©ã¹ã¿ãŒã€ã³ããã¯ã¹ã䜿çšããŠããã®ã¯ã©ã¹ã¿ãŒã®ã©ã€ããªã¹ãã®ãªãã»ãããšé·ãã«ã¢ã¯ã»ã¹ããŸãã
- ã©ã€ãã®å埩åŠçïŒ ã¯ã©ã¹ã¿ãŒã®ã©ã€ããªã¹ãå ã®ã©ã€ããå埩åŠçããã©ã€ãã£ã³ã°èšç®ãå®è¡ããŸãã
- ã©ã€ãã£ã³ã°ã®èç©ïŒ åã©ã€ãã®å¯äžãæçµçãªãã¯ã»ã«ã«ã©ãŒã«èç©ããŸãã
ãã®ããã»ã¹ã¯ãã©ã°ã¡ã³ãã·ã§ãŒããŒã§å®è¡ãããŸããã·ã§ãŒããŒã³ãŒãã¯ãã©ã€ãã£ã³ã°èšç®ãå®è¡ããããã«ãG-Bufferãã¯ã©ã¹ã¿ãŒã°ãªããããŒã¿ãããã³ã©ã€ããªã¹ãããŒã¿ã«ã¢ã¯ã»ã¹ããå¿ èŠããããŸããå¹ççãªã¡ã¢ãªã¢ã¯ã»ã¹ãã¿ãŒã³ã¯ããã©ãŒãã³ã¹ã«ãšã£ãŠéèŠã§ããG-BufferããŒã¿ã¯ãã¯ã¹ãã£ã䜿çšããŠæ ŒçŽãããããšãå€ããã¯ã©ã¹ã¿ãŒã°ãªãããšã©ã€ããªã¹ãããŒã¿ã«ã¯SSBOã䜿çšãããŸãã
WebGLã§ã®å®è£ ã«é¢ããèæ ®äºé
WebGLã§CDRãå®è£ ããã«ã¯ãæé©ãªããã©ãŒãã³ã¹ãšäºææ§ã確ä¿ããããã«ãããã€ãã®èŠçŽ ãæ éã«èæ ®ããå¿ èŠããããŸãã
1. WebGL 2.0 察 WebGL 1.0
WebGL 2.0ã¯ãCDRã®å®è£ ã«ãããŠWebGL 1.0ãããããã€ãã®å©ç¹ãæäŸããŸãïŒ
- ã³ã³ãã¥ãŒãã·ã§ãŒããŒïŒ å¹ççãªGPUåŽã§ã®ã©ã€ãå²ãåœãŠãå¯èœã«ããŸãã
- ã·ã§ãŒããŒã¹ãã¬ãŒãžãããã¡ãªããžã§ã¯ãïŒSSBOïŒïŒ ã¯ã©ã¹ã¿ãŒã°ãªãããã©ã€ããªã¹ããªã©ã®å€§éã®ããŒã¿ãæ ŒçŽããããã®æè»ã§å¹ççãªæ¹æ³ãæäŸããŸãã
- æŽæ°ãã¯ã¹ãã£ïŒ ã©ã€ãã€ã³ããã¯ã¹ã®å¹ççãªæ ŒçŽãå¯èœã«ããŸãã
CDRã¯`OES_texture_float`ã`EXT_frag_depth`ãªã©ã®æ¡åŒµæ©èœã䜿çšããŠWebGL 1.0ã§ãå®è£ ã§ããŸãããã³ã³ãã¥ãŒãã·ã§ãŒããŒãSSBOããªããããããã©ãŒãã³ã¹ã¯äžè¬çã«äœããªããŸããWebGL 1.0ã§ã¯ããã¯ã¹ãã£ã䜿çšããŠSSBOãã·ãã¥ã¬ãŒãããå¿ èŠãããå Žåããããããã远å ã®ãªãŒããŒããããåŒãèµ·ããå¯èœæ§ããããŸããçŸä»£ã®ã¢ããªã±ãŒã·ã§ã³ã§ã¯ãWebGL 2.0ãã¿ãŒã²ããã«ããããšãåŒ·ãæšå¥šãããŸãããã ããå¹ åºãäºææ§ã®ããã«ãWebGL 1.0çšã®ããã·ã³ãã«ãªã¬ã³ããªã³ã°ãã¹ãžã®ãã©ãŒã«ããã¯ãæäŸããããšãäžå¯æ¬ ã§ãã
2. ããŒã¿è»¢éã®ãªãŒããŒããã
CPUãšGPUéã®ããŒã¿è»¢éãæå°éã«æããããšã¯ãããã©ãŒãã³ã¹ã«ãšã£ãŠéåžžã«éèŠã§ããå¯èœã§ããã°ãæ¯ãã¬ãŒã ã®ããŒã¿è»¢éãé¿ããŠãã ãããã¯ã©ã¹ã¿ãŒã°ãªããã®æ¬¡å ãªã©ã®éçããŒã¿ã¯ãäžåºŠã¢ããããŒãããŠåå©çšã§ããŸããã©ã€ãã®äœçœ®ãªã©ã®åçããŒã¿ã¯ã次ã®ãããªæè¡ã䜿çšããŠå¹ççã«æŽæ°ããå¿ èŠããããŸãïŒ
- Buffer Sub DataïŒ ãããã¡ã®å€æŽãããéšåã®ã¿ãæŽæ°ããŸãã
- Orphan BuffersïŒ æ¢åã®ãããã¡ã倿Žãã代ããã«ãæ¯ãã¬ãŒã æ°ãããããã¡ãäœæããæœåšçãªåæã®åé¡ãåé¿ããŸãã
ã¢ããªã±ãŒã·ã§ã³ãæ³šææ·±ããããã¡ã€ãªã³ã°ããŠãããŒã¿è»¢éã®ããã«ããã¯ãç¹å®ããããã«å¿ããŠæé©åããŠãã ããã
3. ã·ã§ãŒããŒã®è€éã
ã©ã€ãã£ã³ã°ã·ã§ãŒããŒã¯ã§ããã ãã·ã³ãã«ã«ä¿ã£ãŠãã ãããè€éãªã©ã€ãã£ã³ã°ã¢ãã«ã¯ããã©ãŒãã³ã¹ã«å€§ããªåœ±é¿ãäžããå¯èœæ§ããããŸããç°¡ç¥åãããã©ã€ãã£ã³ã°ã¢ãã«ã䜿çšããããäžéšã®ã©ã€ãã£ã³ã°èšç®ããªãã©ã€ã³ã§äºåèšç®ããããšãæ€èšããŠãã ãããã·ã§ãŒããŒã®è€éãã¯ãWebGLã¢ããªã±ãŒã·ã§ã³ãã¹ã ãŒãºã«å®è¡ããããã®æå°ããŒããŠã§ã¢èŠä»¶ã«åœ±é¿ããŸããããšãã°ãã¢ãã€ã«ããã€ã¹ã¯ããã€ãšã³ãã®ãã¹ã¯ãããGPUãããè€éãªã·ã§ãŒããŒã«å¯Ÿãã蚱容床ãäœããªããŸãã
4. ã¡ã¢ãªç®¡ç
WebGLã¢ããªã±ãŒã·ã§ã³ã¯ããã©ãŠã¶ãšãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã«ãã£ãŠèª²ããããã¡ã¢ãªå¶çŽãåããŸãããã¯ã¹ãã£ããããã¡ãããã³ãã®ä»ã®ãªãœãŒã¹ã«å²ãåœãŠãããã¡ã¢ãªéã«æ³šæããŠãã ãããæªäœ¿çšã®ãªãœãŒã¹ã¯éããã«è§£æŸããã¡ã¢ãªãªãŒã¯ãé¿ããç¹ã«ãªãœãŒã¹ã«å¶çŽã®ããããã€ã¹ã§ã¢ããªã±ãŒã·ã§ã³ãã¹ã ãŒãºã«å®è¡ãããããã«ããŠãã ããããã©ãŠã¶ã®ããã©ãŒãã³ã¹ç£èŠããŒã«ãå©çšããããšã§ãã¡ã¢ãªé¢é£ã®ããã«ããã¯ãç¹å®ããã®ã«åœ¹ç«ã¡ãŸãã
5. ãã©ãŠã¶ã®äºææ§
äºææ§ã確ä¿ããããã«ãããŸããŸãªãã©ãŠã¶ããã©ãããã©ãŒã ã§ã¢ããªã±ãŒã·ã§ã³ããã¹ãããŠãã ãããWebGLã®å®è£ ã¯ãã©ãŠã¶ã«ãã£ãŠç°ãªãå Žåããããäžéšã®æ©èœã¯ãã¹ãŠã®ããã€ã¹ã§ãµããŒããããŠããªãå ŽåããããŸããæ©èœæ€åºã䜿çšããŠããµããŒããããŠããªãæ©èœãé©åã«åŠçããå¿ èŠã«å¿ããŠãã©ãŒã«ããã¯ã®ã¬ã³ããªã³ã°ãã¹ãæäŸããŠãã ãããç°ãªããã©ãŠã¶ïŒChromeãFirefoxãSafariãEdgeïŒããã³ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ïŒWindowsãmacOSãLinuxãAndroidãiOSïŒã«ãããå ç¢ãªãã¹ããããªãã¯ã¹ã¯ãäžè²«ãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæäŸããããã«äžå¯æ¬ ã§ãã
ã¯ã©ã¹ã¿ãŒåããã¡ãŒãã¬ã³ããªã³ã°ã®å©ç¹
CDRã¯ãåŸæ¥ã®ããã¡ãŒãã¬ã³ããªã³ã°ããã©ã¯ãŒãã¬ã³ããªã³ã°ã«æ¯ã¹ãŠãç¹ã«å€æ°ã®ã©ã€ããããã·ãŒã³ã§ããã€ãã®å©ç¹ãæäŸããŸãïŒ
- ããã©ãŒãã³ã¹ã®åäžïŒ åãã¯ã»ã«ã§å埩åŠçãããã©ã€ãã®æ°ãæžããããšã«ãããCDRã¯ããã©ãŒãã³ã¹ãå€§å¹ ã«åäžãããããšãã§ããç¹ã«å±æçãªã©ã€ããé«å¯åºŠã«ååšããã·ãŒã³ã§å¹æçã§ãã
- ã¹ã±ãŒã©ããªãã£ïŒ CDRã¯ã©ã€ãã®æ°ã«å¿ããŠããŸãã¹ã±ãŒã«ãããããæ°çŸãããã«ã¯æ°åã®å æºãæã€ã·ãŒã³ã«é©ããŠããŸãã
- è€éãªã©ã€ãã£ã³ã°ïŒ äžè¬çã«ããã¡ãŒãã¬ã³ããªã³ã°ã¯ãè€éãªã©ã€ãã£ã³ã°ã¢ãã«ãå¹ççã«é©çšããããšãã§ããŸãã
ã¯ã©ã¹ã¿ãŒåããã¡ãŒãã¬ã³ããªã³ã°ã®æ¬ ç¹
ãã®å©ç¹ã«ãããããããCDRã«ã¯ããã€ãã®æ¬ ç¹ããããŸãïŒ
- è€éãïŒ CDRã¯ãåŸæ¥ã®ãã©ã¯ãŒãã¬ã³ããªã³ã°ãããã¡ãŒãã¬ã³ããªã³ã°ãããå®è£ ãè€éã§ãã
- ã¡ã¢ãªãªãŒããŒãããïŒ CDRã¯ãã¯ã©ã¹ã¿ãŒã°ãªãããšã©ã€ããªã¹ãã®ããã«è¿œå ã®ã¡ã¢ãªãå¿ èŠãšããŸãã
- éæåºŠã®åŠçïŒ CDRãå«ãããã¡ãŒãã¬ã³ããªã³ã°ã¯ãéæåºŠã®å®è£ ãé£ããå ŽåããããŸããéæãªãªããžã§ã¯ãããã©ã¯ãŒãã¬ã³ããªã³ã°ããããé åºéäŸåã®éæåºŠïŒOITïŒã䜿çšããããããªã©ãç¹å¥ãªæè¡ããã°ãã°å¿ èŠã«ãªããŸãã
ã¯ã©ã¹ã¿ãŒåããã¡ãŒãã¬ã³ããªã³ã°ã®ä»£æ¿æ¡
CDRã¯åŒ·åãªæè¡ã§ãããä»ã«ãã©ã€ã管çæè¡ãååšããããããã«é·æãšçæããããŸãïŒ
- Forward+ ã¬ã³ããªã³ã°ïŒ ãã©ã¯ãŒãã¬ã³ããªã³ã°ãšã³ã³ãã¥ãŒãã·ã§ãŒããŒããŒã¹ã®ã©ã€ãã«ãªã³ã°ã¹ããããçµã¿åããããã€ããªããã¢ãããŒããCDRãããå®è£ ãç°¡åãªå ŽåããããŸãããéåžžã«å€æ°ã®ã©ã€ãã§ã¯ã¹ã±ãŒã«ããªãå¯èœæ§ããããŸãã
- ã¿ã€ã«åããã¡ãŒãã¬ã³ããªã³ã°ïŒ CDRã«äŒŒãŠããŸãããç»é¢ã3Dã¯ã©ã¹ã¿ãŒã§ã¯ãªã2Dã¿ã€ã«ã«åå²ããŸããå®è£ ã¯ç°¡åã§ãããæ·±åºŠç¯å²ã®åºãã©ã€ãã®åŠçã«ã¯ããŸã广çã§ã¯ãããŸããã
- ã©ã€ãã€ã³ããã¯ã¹åããã¡ãŒãã¬ã³ããªã³ã°ïŒLIDRïŒïŒ ã©ã€ãã°ãªããã䜿çšããŠã©ã€ãæ å ±ãæ ŒçŽããã©ã€ãã£ã³ã°ãã¹äžã«å¹ççãªã©ã€ãæ€çŽ¢ãå¯èœã«ããæè¡ã
ã¬ã³ããªã³ã°æè¡ã®éžæã¯ãã©ã€ãã®æ°ãã©ã€ãã£ã³ã°ã¢ãã«ã®è€éããã¿ãŒã²ãããã©ãããã©ãŒã ãªã©ãã¢ããªã±ãŒã·ã§ã³ã®ç¹å®ã®èŠä»¶ã«äŸåããŸãã
å®è·µäŸãšãŠãŒã¹ã±ãŒã¹
CDRã¯ç¹ã«ä»¥äžã®ãããªçšéã«é©ããŠããŸãïŒ
- åçã©ã€ãã£ã³ã°ã䜿çšããã²ãŒã ïŒ ãªã¢ã«ã¿ã€ã ã¹ãã©ããžãŒã²ãŒã ãããŒã«ãã¬ã€ã³ã°ã²ãŒã ããã¡ãŒã¹ãããŒãœã³ã·ã¥ãŒãã£ã³ã°ã²ãŒã ãªã©ã倿°ã®åçã©ã€ããæã€ã²ãŒã ã¯ãCDRãã倧ããªæ©æµãåããããšãã§ããŸãã
- 建ç¯ããžã¥ã¢ã©ã€ãŒãŒã·ã§ã³ïŒ è€éãªç §æã·ããªãªãæã€å»ºç¯ããžã¥ã¢ã©ã€ãŒãŒã·ã§ã³ã¯ãããã©ãŒãã³ã¹ãç ç²ã«ããããšãªããªã¢ã«ãªç §æå¹æãéæããããã«CDRãæŽ»çšã§ããŸãã
- ããŒãã£ã«ãªã¢ãªãã£ïŒVRïŒãšæ¡åŒµçŸå®ïŒARïŒïŒ VRããã³ARã¢ããªã±ãŒã·ã§ã³ã¯ãå¿«é©ãªãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãç¶æããããã«é«ããã¬ãŒã ã¬ãŒããå¿ èŠãšããããšããããããŸããCDRã¯ãã©ã€ãã£ã³ã°èšç®ãæé©åããããšã§ãããéæããã®ã«åœ¹ç«ã¡ãŸãã
- ã€ã³ã¿ã©ã¯ãã£ã3Dãããã¯ããã¥ãŒã¢ïŒ 補åã®ã€ã³ã¿ã©ã¯ãã£ããª3Dã¢ãã«ã衚瀺ããeã³ããŒã¹ãã©ãããã©ãŒã ã¯ãCDRã䜿çšããŠè€éãªç §æèšå®ãå¹ççã«ã¬ã³ããªã³ã°ããããé åçãªãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæäŸã§ããŸãã
çµè«
WebGLã¯ã©ã¹ã¿ãŒåããã¡ãŒãã¬ã³ããªã³ã°ã¯ã倿°ã®ã©ã€ããæã€ã·ãŒã³ã§å€§å¹ ãªããã©ãŒãã³ã¹åäžããããã匷åãªã¬ã³ããªã³ã°æè¡ã§ãããã¥ãŒãã©ã¹ã¿ã ãã¯ã©ã¹ã¿ãŒã«åå²ãããããã®ã¯ã©ã¹ã¿ãŒã«ã©ã€ããå²ãåœãŠãããšã«ãããCDRã¯åãã¯ã»ã«ã§å埩åŠçãããã©ã€ãã®æ°ãæžãããçµæãšããŠã¬ã³ããªã³ã°æéãççž®ãããŸããCDRã¯åŸæ¥ã®ãã©ã¯ãŒãã¬ã³ããªã³ã°ãããã¡ãŒãã¬ã³ããªã³ã°ãããå®è£ ãè€éã§ãããããã©ãŒãã³ã¹ãšã¹ã±ãŒã©ããªãã£ã®é¢ã§ã®å©ç¹ã¯ãå€ãã®WebGLã¢ããªã±ãŒã·ã§ã³ã«ãšã£ãŠäŸ¡å€ã®ããæè³ãšãªããŸããæé©ãªããã©ãŒãã³ã¹ãšäºææ§ã確ä¿ããããã«ãWebGLã®ããŒãžã§ã³ãããŒã¿è»¢éã®ãªãŒããŒããããã·ã§ãŒããŒã®è€éããªã©ã®å®è£ äžã®èæ ®äºé ãæ éã«æ€èšããŠãã ãããWebGLãé²åãç¶ããã«ã€ããŠãCDRã¯ãŠã§ããã©ãŠã¶ã§é«å質ãªãªã¢ã«ã¿ã€ã 3Dã°ã©ãã£ãã¯ã¹ãå®çŸããããã®ãŸããŸãéèŠãªæè¡ã«ãªãã§ãããã
ãããªãåŠç¿ãªãœãŒã¹
- ã¯ã©ã¹ã¿ãŒåããã¡ãŒãããã³Forward+ã¬ã³ããªã³ã°ã«é¢ããç ç©¶è«æïŒ ãããã®ã¬ã³ããªã³ã°æè¡ã®æè¡çåŽé¢ã詳述ããåŠè¡åºçç©ãæ¢æ±ããŸãã
- WebGLã®ãµã³ãã«ãšãã¢ïŒ CDRãŸãã¯Forward+ã¬ã³ããªã³ã°ãå®è£ ããŠãããªãŒãã³ãœãŒã¹ã®WebGLãããžã§ã¯ããç ç©¶ããŸãã
- ãªã³ã©ã€ã³ãã©ãŒã©ã ãšã³ãã¥ããã£ïŒ ä»ã®ã°ã©ãã£ãã¯ã¹ããã°ã©ããŒãéçºè ãšäº€æµãã圌ãã®çµéšããåŠã³ã質åãããŸãã
- ãªã¢ã«ã¿ã€ã ã¬ã³ããªã³ã°ã«é¢ããæžç±ïŒ CDRãé¢é£ãããã¯ã詳现ã«ã«ããŒããŠããããšãå€ãããªã¢ã«ã¿ã€ã ã¬ã³ããªã³ã°æè¡ã«é¢ããå æ¬çãªæç§æžãåç §ããŸãã